﻿using System.Collections;
using System.IO;
using System.Configuration;

namespace sn_scan
{
    public class Utils
    {
        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        // 声明INI文件的读操作函数 GetPrivateProfileString()
        [System.Runtime.InteropServices.DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);


        /// 写入INI的方法
        public static void INIWrite(string section, string key, string value, string path)
        {
            // section=配置节点名称，key=键名，value=返回键值，path=路径
            WritePrivateProfileString(section, key, value, path);
        }

        //读取INI的方法
        public static string INIRead(string section, string key, string path)
        {
            // 每次从ini中读取多少字节
            System.Text.StringBuilder temp = new System.Text.StringBuilder(255);

            // section=配置节点名称，key=键名，temp=上面，path=路径
            GetPrivateProfileString(section, key, "", temp, 255, path);
            return temp.ToString();

        }


        public static string ReadConfig(string _key)
        {
            if (string.IsNullOrEmpty(_key))
            {
                return null;
            }

            string v = ConfigurationManager.AppSettings[_key];

            return v;
        }

        public static bool SaveConfig(string _key,string _value) 
        {
            Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cfa.AppSettings.Settings[_key].Value = _value;
            cfa.Save();
            return true;
        }

        public static string GetCurrentPath()
        {
            return System.IO.Directory.GetCurrentDirectory();
        }

        public static ArrayList GetAllCurrentFileName(string _filePath)
        {
            string[] strings = Directory.GetDirectories(_filePath);
            ArrayList result = new ArrayList();
            foreach (string s in strings) 
            {
                string item = s.Substring(s.LastIndexOf('\\') + 1);
                result.Add(item);
            }
            return result;
        }
    }
}
